You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds web as a shared platform selector across CLI, structured command input, client normalization, session lock checks, and capability admission.
Enables only the first web command slice (open, close, snapshot/read/selector interactions, typing, press/click/fill/scroll) and keeps native/device commands unsupported. Adds the stable local web desktop placeholder agent-browser-chrome plus focused parser/schema/capability tests.
Blocking review finding: src/remote-config-schema.ts:84 still omits web from REMOTE_CONFIG_FIELD_SPECS.platform. CLI option metadata now includes web, so src/utils/tests/cli-option-schema.test.ts fails its schema-alignment assertion, and remote config/env defaults with platform=web would be rejected despite PlatformSelector accepting it. Please source this enum from PLATFORM_SELECTORS or add web here and keep the alignment test green.
src/core/dispatch-resolve.ts currently treats every selector except android/linux as Apple-family in isAppleResolutionSelector. After this PR, platform web enters that path. Plain web resolution happens to return the placeholder, but mixed selectors like platform web plus udid can now report Apple-specific errors, and the predicate is no longer a valid platform-boundary contract. Please make it explicit for ios, macos, and apple or use the shared Apple predicate, and add a web resolution regression test.
src/core/platform-inventory.ts appends agent-browser-chrome to unfiltered inventory. Because sessionless open may resolve a default device without platform, a host with no other candidates can now auto-select web and then fail at dispatch with Unsupported platform web because this PR intentionally has no web interactor/provider. Please keep the placeholder opt-in via platform web until the provider slice lands, or add an intentional test documenting the new default-selection behavior.
Additional route/admission finding: appstate is not covered by the capability matrix because it is capability-exempt in src/command-catalog.ts, but the new platform vocabulary lets appstate run with platform web. In src/daemon/handlers/session-state.ts, non-iOS and non-macOS devices fall through to getAndroidAppState, so appstate --platform web can reach the Android app-state backend instead of being rejected as unsupported. Issue #818 keeps native app state out of scope, so please add an explicit web rejection or capability/admission coverage plus a regression test.
Preview removed because the pull request was closed.
2026-06-19 09:57 UTC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
webas a shared platform selector across CLI, structured command input, client normalization, session lock checks, and capability admission.Enables only the first web command slice (
open,close, snapshot/read/selector interactions, typing, press/click/fill/scroll) and keeps native/device commands unsupported. Adds the stable local web desktop placeholderagent-browser-chromeplus focused parser/schema/capability tests.Closes #818
Touched files: 12. Scope stayed within platform vocabulary, input, normalization, capability admission, fixtures, and tests.
Validation
pnpm formatcompleted successfully.pnpm typecheckpassed. Targeted Vitest coverage passed for capabilities, CLI args, and command surface metadata: 3 files, 126 tests.